Lemmas and Proofs for “Complete and Easy Bidirectional Typechecking for Higher-Rank Polymorphism”
نویسندگان
چکیده
A Declarative Subtyping 6 A.1 Properties of Well-Formedness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1 Proposition (Weakening) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2 Proposition (Substitution) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 A.2 Reflexivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3 Lemma (Reflexivity of Declarative Subtyping) . . . . . . . . . . . . . . . . . . . . . 6 A.3 Subtyping Implies Well-Formedness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4 Lemma (Well-Formedness) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 A.4 Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 5 Lemma (Substitution) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 A.5 Transitivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 Lemma (Transitivity of Declarative Subtyping) . . . . . . . . . . . . . . . . . . . . . 6 A.6 Invertibility of ≤∀R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 7 Lemma (Invertibility) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 A.7 Non-Circularity and Equality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1 Definition (Subterm Occurrence) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 8 Lemma (Occurrence) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 9 Lemma (Monotype Equality) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2 Definition (Contextual Size) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
منابع مشابه
Sound and Complete Bidirectional Typechecking for Higher-Rank Polymorphism and Indexed Types: Lemmas and Proofs
B Properties of the Declarative System 23 1 Lemma (Declarative Weakening) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2 Lemma (Declarative Term Substitution) . . . . . . . . . . . . . . . . . . . . . . . . 23 3 Lemma (Reflexivity of Declarative Subtyping) . . . . . . . . . . . . . . . . . . . . . 23 4 Lemma (Subtyping Inversion) . . . . . . . . . . . . . . . . . . . . . . . . . ....
متن کاملSound and Complete Bidirectional Typechecking for Higher-Rank Polymorphism and Indexed Types
Bidirectional typechecking, in which terms either synthesize a type or are checked against a known type, has become popular for its scalability, its error reporting, and its ease of implementation. Following principles from proof theory, bidirectional typing can be applied to many type constructs. The principles underlying a bidirectional approach to indexed types (generalized algebraic datatyp...
متن کاملBidirectional polymorphism through greed and unions
Bidirectional typechecking has become popular in advanced type systems because it works in many situations where inference is undecidable. In this paper, I show how to cleanly handle parametric polymorphism in a bidirectional setting, even in the presence of subtyping. The first contribution is a bidirectional type system that supports first-class (higher-rank and impredicative) polymorphism bu...
متن کاملSound and Complete Bidirectional Typechecking for Higher-Rank Polymorphism with Existentials and Indexed Types
Bidirectional typechecking, in which terms either synthesize a type or are checked against a known type, has become popular for its scalability, its error reporting, and its ease of implementation. Following principles from proof theory, bidirectional typing can be applied to many type constructs. The principles underlying a bidirectional approach to indexed types (generalized algebraic datatyp...
متن کاملSound and Complete Bidirectional Typechecking for Higher-Rank Polymorphism with Existentials and Indexed Types
ANONYMOUS AUTHOR(S) Bidirectional typechecking, in which terms either synthesize a type or are checked against a known type, has become popular for its scalability, its error reporting, and its ease of implementation. Following principles from proof theory, bidirectional typing can be applied to many type constructs. The principles underlying a bidirectional approach to indexed types (generaliz...
متن کامل